home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / stos / stos_67 / tsearch.s < prev   
Text File  |  1985-11-19  |  1KB  |  54 lines

  1. **************************************
  2. *                     *
  3. *  Tile Search Routine. For TOME     *
  4. *  Checks in area x1,y1-x2,y2 for    *
  5. *  1st Occurence of Tile             *
  6. *  returns with Dreg(0)=-1 if not    *
  7. *  Found, Dreg(0)=X+Y*xsize if found *
  8. **************************************
  9. * Enter with D0=x1,d1=y1,d2=x2,d3=y2,d4=Tile,a0=address of map
  10. xsize    equ    0
  11. ysize    equ    2
  12. x1    equ    4
  13. y1    equ    6
  14. x2    equ    8
  15. y2    equ    10
  16. tile    equ    12
  17.  
  18.     lea    darta(pc),a6
  19.     move.w    0(a0),xsize(a6)
  20.     move.w    2(a0),ysize(a6)
  21.     move.w    d0,x1(a6)
  22.     move.w    d1,y1(a6)
  23.     move.w    d2,x2(a6)
  24.     move.w    d3,y2(a6)
  25.     move.b    d4,tile(a6)
  26.     add.l    #4,a0
  27. yloop    move.w    x1(a6),d0
  28.     move.w    xsize(a6),d2
  29.     move.w    d1,d3
  30.     mulu    d2,d3
  31.     move.l    a0,a1
  32.     add.l    d3,a1
  33.     move.b    tile(a6),d3
  34. xloop    move.b    0(a1,d0),d2
  35.     cmp.b    d2,d3
  36.     beq    gottit
  37.     addq.w    #1,d0
  38.     move.w    x2(a6),d2
  39.     cmp.w    d0,d2
  40.     bne    xloop
  41.     addq.w    #1,d1
  42.     move.w    y2(a6),d2
  43.     cmp.w    d1,d2
  44.     bne    yloop
  45.     move.w    #-1,d0
  46.     rts
  47. gottit    move.w    xsize(a6),d2
  48.     mulu.w    d1,d2
  49.     add.w    d2,d0
  50.     rts
  51.  
  52. darta    ds.w    8
  53.     
  54.